<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2016 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2016/05-May/08.xhtml"/>
		<title>I swear, I hate the WHATWG. &lt;https://y.st./en/weblog/2016/05-May/08.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png"/>
		<link rel="stylesheet" type="text/css" href="/link/main.css"/>
		<script type="text/javascript" src="/script/javascript.js"/>
		<meta name="viewport" content="width=device-width"/>
	</head>
	<body>
<nav>
	<p>
		<a href="/en/coursework/">Coursework</a> |
		<a href="/en/take-down/">Take-down requests</a> |
		<a href="/en/">Home</a> |
		<a href="/en/a/about.xhtml">About</a> |
		<a href="/en/a/contact.xhtml">Contact</a> |
		<a href="/a/canary.txt">Canary</a> |
		<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
		<a href="/en/opinion/">Opinions</a> |
		<a href="/en/law/">Law</a> |
		<a href="/en/recipe/">Recipes</a> |
		<a href="/en/a/links.xhtml">Links</a> |
		<a href="/en/weblog/2016/05-May/08.xhtml.asc">{this page}.asc</a>
	</p>
	<hr/>
	<p>
		Weblog index:
		<a href="/en/weblog/memories">Memories</a> |
		<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
		<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
		<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
	</p>
	<hr/>
	<p>
		Jump to entry:
		<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
		<a rel="prev" href="/en/weblog/2016/05-May/07.xhtml">&lt;Previous</a>
		<a rel="next" href="/en/weblog/2016/05-May/09.xhtml">Next&gt;</a>
		<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
</nav>
		<header>
			<h1>I swear, I hate the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>.</h1>
			<p>Day 00428: <time>Sunday, 2016 May 08</time></p>
		</header>
<p>
	While trying to research what to do about computing table cell widths for <a href="https://git.vola7ileiax4ueow.onion/y.st./include.d">include.d</a>&apos;s <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>-to-plain-text conversion class, I ran across information hinting that the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> has a presence on <a href="ircs://sbuk7aqcxkoyipwv.onion:49152/%23WHATWG">freenode</a>.
	I&apos;ve never been a fan of the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>, as they tried to overthrow the <abbr title="World Wide Web Consortium">W3C</abbr> as the standards-setter for <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>/<abbr title="Hypertext Markup Language">HTML</abbr> (and mostly succeeded in doing so).
	They revived <abbr title="Hypertext Markup Language">HTML</abbr>, which should be dead, and killed <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>2, which should have been our new standard.
	<abbr title="Hypertext Markup Language">HTML</abbr> is messy and <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>2 cleaned up most, if not all, of that mess.
	However, with the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> being pretty much the people in charge now, and seeing as they are trying to get markup rendered similarly across all Web clients, I figured that I should pocket my disdain for the time being, pay them a visit, and ask for their advice.
	Avoiding their help doesn&apos;t undo the past and getting their help, provided I still follow the <abbr title="World Wide Web Consortium">W3C</abbr>&apos;s version of <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>5 instead of the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s, doesn&apos;t further any bad parts of the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s agenda.
	Of course, freenode was being a pain as usual, so I wasn&apos;t able to connect right away.
	Trying to speed the process, I went to the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s website to see if this presence on freenode was official and if they also had a presence on other <abbr title="Internet Relay Chat">IRC</abbr> networks.
	What I found there shocked me.
	In several places, it&apos;s mentioned that the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> is opposed to the <abbr title="World Wide Web Consortium">W3C</abbr>&apos;s finalized version of the specification.
	They are against there being any stable standard, instead insisting that a &quot;living standard&quot; is the way to go.
	With a so-called &quot;living standard&quot;, there is no way to be sure that a document is valid, as the definition of &quot;valid&quot; constantly changes.
	There&apos;s no way to measure compatibility.
	You can&apos;t say that Web client X is compatible with <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> version Y, because there is no version Y, or any other version number.
	Worse still though is what this message tells us about the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>.
	For example, take the <a href="https://wiki.whatwg.org/wiki/FAQ#What_are_the_various_versions_of_the_HTML_spec.3F">following passage</a>:
</p>
<blockquote><p>
	The W3C publishes some forked versions of these specifications.
	We have requested that they stop publishing these but they have refused.
	They copy most of our fixes into their forks, but their forks are usually weeks to months behind.
	They also make intentional changes, and sometimes even unintentional changes, to their versions.
	We highly recommend not paying any attention to the W3C forks of WHATWG standards.
</p></blockquote>
<p>
	<q>We highly recommend not paying any attention to the W3C forks of WHATWG standards.</q> They dismiss the <abbr title="World Wide Web Consortium">W3C</abbr>, recommending that people not pay attention to them.
	It doesn&apos;t matter to the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> that they&apos;ve effectively taken over <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>/<abbr title="Hypertext Markup Language">HTML</abbr>, with the <abbr title="World Wide Web Consortium">W3C</abbr> mostly only giving stability to the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s standard.
	They want the <abbr title="World Wide Web Consortium">W3C</abbr> to keep their hands out of <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>/<abbr title="Hypertext Markup Language">HTML</abbr> altogether!
</p>
<p>
	The line above that passage is even more horrifying though.
	<q>The WHATWG also works on other standards, such as the DOM, URL, and XMLHttpRequest standards.</q> I don&apos;t know if the Document Object Model has any context outside the Web and XMLHttpRequest clearly has something to do with <abbr title="Hypertext Transfer Protocol">HTTP</abbr> (in other words, the Web).
	The <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> is trying to redefine <abbr title="Uniform Resource Locator">URL</abbr>s though! What gall! <abbr title="Uniform Resource Locator">URL</abbr>s are the largest subgroup of <abbr title="Uniform Resource Identifier">URI</abbr>.
	<abbr title="Uniform Resource Identifier">URI</abbr>s span more than just use on the Web, and for them to be effective, they need a single, unified syntax, <strong>*not*</strong> one that&apos;s Web-specific.
	Furthermore, the <a href="https://url.spec.whatwg.org/"><abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s strange <abbr title="Uniform Resource Locator">URL</abbr> specification</a> is more difficult to understand than <a href="https://tools.ietf.org./html/rfc3986"><abbr title="Request for Comments">RFC</abbr> 3986</a> and includes platform-specific nonsense such as Windows drive letters! <abbr title="Uniform Resource Identifier">URI</abbr>s, including <abbr title="Uniform Resource Locator">URL</abbr>s, are not platform-specific and shouldn&apos;t include features that require parsing based on platform-specific operating system features.
	To be clear, their definition doesn&apos;t seem to require normalization in a platform-specific way, so <abbr title="Uniform Resource Identifier">URI</abbr>s would still parse the same way on every platform, but all platforms would need to watch for syntax specific to other platforms when parsing, which is almost as bad.
	Perhaps I&apos;d be less against the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> redefining <abbr title="Uniform Resource Identifier">URI</abbr>s if the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> was a more competent group, but instead of sustainability, future compatibility, and document cleanliness, their main concern seems to be to codify what incorrect behavior Web clients currently exhibit and define a new &quot;correct&quot; based on that strange behavior.
	If the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> was actually a competent group, their <abbr title="Uniform Resource Locator">URL</abbr> definition could be better than the <abbr title="Internet Engineering Task Force">IETF</abbr>&apos;s definition simply because the <abbr title="Internet Engineering Task Force">IETF</abbr>&apos;s definition is nonfree.
	However, the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr> was formed out of a perceived need to fight the cleaning of the <abbr title="Hypertext Markup Language">HTML</abbr> language, so it makes sense that they aren&apos;t defining reasonable standards.
</p>
<p>
	In case anyone&apos;s curious, yes, the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>&apos;s only official <abbr title="Internet Relay Chat">IRC</abbr> presence did turn out to be on freenode.
</p>
<p>
	I finished all the trivial work on my <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>-to-plain-text class, but the thought of dealing with ordered lists and tables was too daunting for today.
	I even got <code>&lt;iframe/&gt;</code>s implemented, though not according to the specification.
	Unfortunately, the specification says that if the <a href="https://www.w3.org./TR/html5/embedded-content-0.html#process-the-iframe-attributes"><code>srcdoc</code> attribute</a> is specified, it represents a nested document with a <code>text/html</code> <code>Content-Type</code>.
	This is regardless of whether the containing document has an <code>application/xhtml+xml</code> <code>Content-Type</code>, clearly indicating that the author intended for the document to be <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>, not <abbr title="Hypertext Markup Language">HTML</abbr>.
	I&apos;m using an <abbr title="Extensible Markup Language">XML</abbr> parser.
	I can&apos;t make it work on malformed markup such as unclean-yet-valid <abbr title="Hypertext Markup Language">HTML</abbr> code.
	My class isn&apos;t built to work on random pages found on the Web though, it&apos;s built to allow authors to mark up their documents in a real markup language, then present them as plain text files.
	If people plan to make use of such a markup class, they&apos;ll have to use that markup class&apos; unique language.
	The fact that my class&apos; language is identical to <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> in all ways besides the handling of <code>&lt;iframe/&gt;</code> <code>srcdoc</code> attribute doesn&apos;t seem overly problematic.
	A real <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> author would use <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> in that attribute anyway, just making sure that their syntax conformed with the new <a href="https://www.w3.org./TR/html-polyglot/"><abbr title="Hypertext Markup Language">HTML</abbr>5 polyglot syntax</a>, which conforms with both the <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>5 rules and the <abbr title="Hypertext Markup Language">HTML</abbr>5 rules.
	That way, they&apos;d have the well-formed-ness of <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> but would still be following the specification by using <abbr title="Hypertext Markup Language">HTML</abbr>-compatible markup.
	After finishing with <code>&lt;iframe/&gt;</code>s, I should have completed the work on unordered lists, but it seemed a little too complex for today.
	I instead started looking for solutions to the more complex task of figuring out how to calculate optimal table column widths to minimize table height.
	When you&apos;re faced with a complex task, instead work on an even more complex task.
	Great idea, right⸮ Without any better idea than to calculate the table many times, once to try every possible column width, and choose the shortest table, I didn&apos;t have any idea how to complete the task at hand.
	Reluctantly, I decided to speak with people in #WHATWG, which is when I ran into the information that I found above.
	I&apos;m still probably going to try to solicit their help though, as they might have information on how Web browsers typically deal with the problem of calculating optimal column widths, as they have to do something very similar to what I&apos;m doing.
</p>
<p>
	I continued thinning down my belongings today, though admittedly, spent most of my time instead trying to figure out what to do about <code>&lt;table/&gt;</code>s, so I didn&apos;t get a whole lot thinned down.
	I found my old <abbr title="Free Software Foundation">FSF</abbr> membership card, but I&apos;m not sure what to do with it.
	I&apos;m not sure if my membership has technically expired or not, but I certainly haven&apos;t considered myself a member for well over a year.
	The membership card doubles as a <abbr title="Universal Serial Bus">USB</abbr> drive though, so if I erase Trisquel from it, it could be useful for small data storage.
</p>
<p>
	Vanessa, our mother, and I went out to collect bullet shells for a while, and later, we went out to walk on the dunes.
	After we got home, Cyrus made it home as well.
</p>
		<hr/>
		<p>
			Copyright © 2016 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F05-May%2F08.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.2</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F05-May%2F08.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

